package queue;

/**
 * Created by IntelliJ IDEA.
 * User: 杰哥
 * Date: 2020/3/19
 * Time: 11:04
 */
public class ArrayQueueDemo {
    public static void main(String[] args) {
    }
}

/**
 * 非环形队列
 * 不可以复用
 */
class ArrayQueue {
    private int maxSize;  // 表示数组最大的容量
    private int front;    // 队列头
    private int rear;     // 队列尾
    private int[] arr;    // 该数据用于存放数据，模拟队列

    //创建队列的构造器
    public ArrayQueue(int arrMaxSize) {
        maxSize = arrMaxSize;
        arr = new int[maxSize];
        front = -1; //  表示队列头部前一个位置
        rear = -1;  // 指向队列尾的下标，没有数据就为-1
    }

    /**
     * 判断队列 是否满
     */
    public boolean isFull() {
        return rear == maxSize - 1;
    }

    /**
     * 判断队列是否为空
     */
    public boolean isEmpty() {
        return rear == front;
    }

    /**
     * 添加数据到队列
     */
    public void addQueu(int n) {
        //判断队列是否满
        if(isFull()) {
            System.err.println("队列满，不能加入数据");
            return;
        }
        rear++;//让rear 后移
        arr[rear] = n;
    }

    /**
     * 获取队列的数据，出队列
     */
    public int getQueue() {
        //判断队列是否空
        if(isEmpty()) {
            throw new RuntimeException("队列空，不能取数据");
        }
        front++;
        return arr[front];
    }

}


